翻訳と辞書
Words near each other
・ UNIFAC Consortium
・ UNIFAC Cup
・ Uniface
・ Uniface (company)
・ Uniface (numismatics)
・ Uniface (programming language)
・ Unifacial cambium
・ UNIFAT
・ UNIFFAC Clubs Cup
・ UNIFFAC Cup
・ UNIFI
・ UniFi
・ UNIFI (trade union)
・ Unification
・ Unification (album)
Unification (computer science)
・ Unification Church
・ Unification Church and Islam
・ Unification Church and Judaism
・ Unification Church and mainstream Christianity
・ Unification Church and North Korea
・ Unification Church and science
・ Unification Church business activities
・ Unification Church of the United States
・ Unification Church political activities
・ Unification Church view of Jesus
・ Unification Church views on sexuality
・ Unification Day
・ Unification Day (Bulgaria)
・ Unification Day (Cameroon)


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Unification (computer science) : ウィキペディア英語版
Unification (computer science)
Unification, in computer science and logic, is an algorithmic process of solving equations between symbolic expressions.
Depending on which expressions (also called ''terms'') are allowed to occur in an equation set (also called unification problem), and which expressions are considered equal, several frameworks of unification are distinguished. If ''higher-order variables'', that is, variables representing functions, are allowed in an expression, the process is called higher-order unification, otherwise first-order unification. If a solution is required to make both sides of each equation literally equal, the process is called syntactical unification, otherwise semantical, or equational unification, or E-unification, or unification modulo theory.
A solution of a unification problem is denoted as a substitution, that is, a mapping assigning a symbolic value to each variable of the problem's expressions. A unification algorithm should compute for a given problem a complete, and minimal substitution set, that is, a set covering all its solutions, and containing no redundant members. Depending on the framework, a complete and minimal substitution set may have at most one, at most finitely many, or possibly infinitely many members, or may not exist at all.〔in this case, still a complete substitution set exists (e.g. the set of all solutions at all); however, each such set contains redundant members.〕 In some frameworks it is generally impossible to decide whether any solution exists. For first-order syntactical unification, Martelli and Montanari gave an algorithm that reports unsolvability or computes a complete and minimal singleton substitution set containing the so-called most general unifier.
For example, using ''x'',''y'',''z'' as variables, the singleton equation set is a syntactic first-order unification problem that has the substitution as its only solution.
The syntactic first-order unification problem has no solution over the set of finite terms; however, it has the single solution over the set of infinite trees.
The semantic first-order unification problem has each substitution of the form as a solution in a semigroup, i.e. if (⋅) is considered associative; the same problem, viewed in an abelian group, where (⋅) is considered also commutative, has any substitution at all as a solution.
The singleton set is a syntactic second-order unification problem, since ''y'' is a function variable.
One solution is ; another one is .
The first formal investigation of unification can be attributed to John Alan Robinson,〔; Here: sect.5.8, p.32〕 who used first-order syntactical unification as a basic building block of his resolution procedure for first-order logic, a great step forward in automated reasoning technology, as it eliminated one source of combinatorial explosion: searching for instantiation of terms. Today, automated reasoning is still the main application area of unification.
Syntactical first-order unification is used in logic programming and programming language type system implementation, especially in Hindley–Milner based type inference algorithms.
Semantic unification is used in SMT solvers and term rewriting algorithms.
Higher-order unification is used in proof assistants, for example Isabelle and Twelf, and restricted forms of higher-order unification (higher-order pattern unification) are used in some programming language implementations, such as lambdaProlog, as higher-order patterns are expressive, yet their associated unification procedure retains theoretical properties closer to first-order unification.
==Common formal definitions==


抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Unification (computer science)」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.